package collection;
/**
 * List接口
 * 1.List接口继承自Collection接口，为有序可重复集合, 提供了一套可以通过下标来操作的方法
 * 2.有两个常见的实现类：
 *  1)ArrayList: 内部使用数组实现, 查询性能更好(直接下标找到物理地址), 增删性能不好
 *  2)LinkedList: 内部使用双向链表实现,只记首尾增删性能好, 查询性能不好
 *      注意: 在堆积和操作的增删性能没有特别苛刻的要求是, 通常选择ArrayList
 */
import java.util.ArrayList;
import java.util.List;
public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println("list:"+list);//[one, two, three, four, five]
        System.out.println("----------------------");

        String e = list.get(3);//获取下标3位置的元素
        System.out.println(e);//four

        for (int i=0; i<list.size(); i++){
            System.out.println(list.get(i));
        }
        System.out.println("----------------------");

        // list.set(2,"six");//将list中下标为2的元素设置为six ---- 常规操作
        String old = list.set(2,"six");//将list中下标为2的元素设置为six, 同时返回被替换的元素
        System.out.println(old); //three
        System.out.println("list: "+list);
    }
}
